package com.fhzn.auth.mapper;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.fhzn.auth.entity.RoleResource;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @author 老顾
 * @apiNote
 * @since 2023/12/25
 */
@Mapper
public interface RoleResourceMapper extends BaseMapper<RoleResource> {


    /**
     * 根据角色id查询拥有该角色的资源
     *
     * @param roleId 角色id
     * @return 资源列表
     */
    default List<RoleResource> findRoleResourceByRoleId(Integer roleId) {
        LambdaQueryWrapper<RoleResource> wrapper = Wrappers.lambdaQuery();
        wrapper.eq(RoleResource::getRoleId, roleId);
        return selectList(wrapper);
    }

    /**
     * 根据角色id删除角色资源关系
     *
     * @param id 角色id
     */
    default void deleteByRoleId(Integer id) {
        delete(Wrappers.<RoleResource>lambdaQuery().eq(RoleResource::getRoleId, id));
    }

    /**
     * 根据角色id列表查询角色资源关系
     *
     * @param roleIds 角色id列表
     * @return 角色资源关系列表
     */
    default List<RoleResource> queryByRoleIdList(List<Integer> roleIds) {
        LambdaQueryWrapper<RoleResource> wrapper = Wrappers.lambdaQuery();
        wrapper.in(RoleResource::getRoleId, roleIds);
        return selectList(wrapper);
    }
}
